import './index.scss'
import { Card, Form, Input, Button, message } from 'antd'
import logo from '@/assets/logo.png'
import { fetchLogin } from '@/store/modules/user'
import { useDispatch } from 'react-redux'
import { useNavigate } from 'react-router-dom'

const Login = () => {
    const dispatch = useDispatch()
    const navigae = useNavigate()
    const [form] = Form.useForm()

    // 设置表单默认值，用于测试
    form.setFieldsValue({
        mobile: '13800000002',
        code: '246810'
    })

    const onFinish = async (values) => {
        // 出发异步action fetchLogin
        await dispatch(fetchLogin(values))
        // 跳转到首页
        navigae('/')
        // 提示用户
        message.success('登录成功')
    }
    return (
        <div className="login">
            <Card className="login-container">
                <img className="login-logo" src={logo} alt="" />
                {/* 登录表单 */}
                <Form onFinish={onFinish} validateTrigger="onBlur" form={form}>
                    <Form.Item name="mobile" rules={[
                        { required: true, message: '手机号不能为空' },
                        { pattern: /^1[3-9]\d{9}$/, message: '手机号格式错误' }
                    ]}>
                        <Input size="large" placeholder="请输入手机号" />
                    </Form.Item>
                    <Form.Item name="code" rules={[
                        { required: true, message: '验证码不能为空' }
                    ]}>
                        <Input size="large" placeholder="请输入验证码" />
                    </Form.Item>
                    <Form.Item>
                        <Button type="primary" htmlType="submit" size="large" block>
                            登录
                        </Button>
                    </Form.Item>
                </Form>
            </Card>
        </div>
    )
}

export default Login